﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Data;

namespace prjMateriais
{
    public partial class frmCadGrupoMaterial : FormCadastroPadrao.FormCadastro
    {
        bool firstClick;
        public frmCadGrupoMaterial()
        {
            InitializeComponent();
            this.tabela = ConstTabelas.GRUPOMATERIAL;
            loadDados();
            firstClick = true;
            loadGrupos();
        }

        private void frmCadGrupoMaterial_Load(object sender, EventArgs e)
        {

        }

        private void loadDados()
        {
            Dados codigo = new Dados(ConstTabelas.GRUPOMATERIAL_PK, txtbxCodigo.Name, false, true, Dados.tipo.numero, "Código");
            Dados nome = new Dados("Nome", txtbxDescricao.Name, false, false, Dados.tipo.texto, "Descrição");
            Dados codTipo = new Dados("Tipo", cboTipo.Name, true, false, Dados.tipo.numero, "Tipo do Grupo");
            Dados situacao = new Dados("Situacao", chckbxAtivo.Name, true, false, Dados.tipo.sim_nao, "Ativo");
            Dados codGrupo = new Dados("GrupoPai", cboGrupo.Name, false, false, Dados.tipo.texto, "Grupo Pai");

            this.campos = new List<Dados>();
            this.campos.Add(codigo);
            this.campos.Add(nome);
            this.campos.Add(codGrupo);
            this.campos.Add(codTipo);
            this.campos.Add(situacao);
        }

        public void habilitarGrupoPai()
        {
            cboGrupo.Enabled = cboTipo.Text == "Analítico";

            if (!cboGrupo.Enabled)
            {
                cboGrupo.DataSource = null;
            }

        }

        public void loadGrupos()
        {
            DataTable grupos = Conexao.getInstance.executeQuery(SqlCrud.getInstance.select(ConstTabelas.GRUPOMATERIAL, "Situacao = 1"));
            this.cboGrupo.DataSource = grupos;
            this.cboGrupo.DisplayMember = "Nome";
            this.cboGrupo.ValueMember = ConstTabelas.GRUPOMATERIAL_PK;
        }

        private void cmbxTipo_SelectedIndexChanged(object sender, EventArgs e)
        {
            habilitarGrupoPai();
        }

        private void frmCadGrupoMaterial_Shown(object sender, EventArgs e)
        {
            if (!this.insert)
            {
                loadGrupos();
                firstClick = false;
                try
                {
                    cboGrupo.SelectedValue = this.indexCombo[0];
                }
                catch { }
            }
                habilitarGrupoPai();
        }

        private void cboGrupo_Click(object sender, EventArgs e)
        {
            if (firstClick || cboGrupo.DataSource == null)
            {
                loadGrupos();
                firstClick = false;
            }

        }
    }
}
